{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1. 简述混合高斯模型的基本原理，以及通过混合高斯模型进行背景建模的基本思想。 \n",
    "\n",
    "- 对于一个稳定的图像像素，如果它是背景，那么它的灰度值随时间变化符合高斯分布。而如果某个时间点该像素的灰度值与高斯分布中平均值的距离超过三个标准差，则认为此时它是前景。\n",
    "- 任何一种分布都可以看做是多个高斯分布的组合\n",
    "- 我们可以对一个像素点建立如下图所示的混合高斯模型，如果计算出$w_q, \\mu_q, \\sigma_q$, 则可以区分像素的前景和背景\n",
    "![image1.png](./混合高斯模型-背景建模.png)\n",
    "- 通过混合高斯模型建模的步骤：\n",
    "1. 模型初始化：将采到的第一帧图像的每个像素的灰度值作为均值，再赋以较大的方差。如设置初值$Q=1，w=1.0$\n",
    "2. 模型学习：将当前帧的对应点像素的灰度值与有的Q个高斯模型作比较。若$|x_k-\\mu_{q,k}|<2.5\\sigma_{q,k}$, 则将该像素点的灰度值加入以上高斯模型，调整该高斯模型的参数、权重\n",
    "3. 添加/替换高斯分量：控制高斯模型的数量，如果现有高斯模型的数量$q<Q$，则增加一个新分量；若$q=Q$，则权重最小的被替换\n",
    "4. 判断背景：所有高斯模型按照权重降序排列，取$T=0.6~0.9$，权重加和超过T的被认为是前景，否则被认为是背景\n",
    " ![image1.png](./前景背景.png)\n",
    "5. 进行迭代计算\n",
    " ![image1.png](./混合高斯模型-迭代计算.png)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2. 解释光流计算中的恒定亮度假设，进一步简述L-K光流估计方法的基本原理。\n",
    "\n",
    "#### 恒定亮度假设：\n",
    "光流估计需要处理同一点在x, y方向均发生位移，且时间t同时也进行了推移的情况。而同一个物体在两个时刻，亮度应该是相同的，于是有以下的推导：\n",
    "\n",
    " ![image1.png](./光流估计1.png)\n",
    "\n",
    "光流估计的基本模型是：\n",
    " ![image1.png](./光流估计2.png)\n",
    " 即通过亮度在两帧中的变化值，估计$\\Delta x, \\Delta y$\n",
    "\n",
    "#### L-K光流估计方法的基本原理\n",
    "\n",
    "1. L-K方法将相邻帧像素位移分为许多小方格，每个小方格内的所有像素位移相同。设$u,v = \\Delta x, \\Delta y$, 则\n",
    " ![image1.png](./LK1.png)\n",
    "2. 将该问题转化为最优化问题，即为求$min||Au - b||$, 即求最小二乘解：$u = (A^T A)^{-1}A^Tb$\n",
    "3. 将每个小格内像素到中心点的距离设为权重w可得：\n",
    " ![image1.png](./LK2.png)\n",
    "4. 判断可信度，根据特征值判断是否能计算可信：灰度变化均平缓的时候可以求逆，若有一个方向变化剧烈，则不可求逆\n",
    " ![image1.png](./LK3.png)\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
